昨天介紹的是用來呈現數據的工具,我們今天要介紹的則是用來收集數據的資料庫 Prometheus
什麼是 Prometheus?
Prometheus 是個 open-source 的 time-series database,擁有自己的語言系統 PromQL,現在是 CNCF 專案之一,應用非常廣泛
Prometheus 具有這些特性
可是 Prometheus 只是一個資料庫,我們需要其他工具來把主機的資料打進資料庫中
我們介紹最基礎的 Node Exporter 就好
Node Exporter 是個跑在每臺伺服器上的 agent,這個 agent 在被 trigger 時會讀取一遍能被讀取的系統資訊,接下來會把這些資訊透過 0.0.0.0:9100/metrics
暴露出來,而我們需要設定 Prometheus,讓它會定時去打這個 Endpoint 取得系統資訊,然後再把這些資訊存進 Prometheus 內,進而達到監控系統的作用
而在 Prometheus 的專案內,有提供一個告警系統 Alertmanager,會需要把告警的規則寫在 Prometheus 內,而 Prometheus 每次在拉 metrics 時會去跟這些規則做比對,一旦有相符的規則後,便會送出 alert 給 Alertmanager
接著, Alertmanager 會依據你建立的規則,分別去通知不同的對象
Prometheus 除了有 Node Exporter 以外,還有其他工具能看不同數據,例如
這裡只列官網中列出來的,而實際上還有更多第三方的 exporter 能使用
我們今天也只先介紹 Prometheus & Node Exporter
明天會介紹另一個監控資料庫 InfluxDB